#include "visualizadorAbstrato.h"
#include "visualizadorListaDuplaLigada.h"

//------------------------------------------------------------------------------
visualizadorListaDuplaLigada::visualizadorListaDuplaLigada(float x,float y):visualizadorAbstrato(x,y)
{
	lstListaDuplamenteLigada = new ListaDuplamenteLigada;
};
//------------------------------------------------------------------------------
visualizadorListaDuplaLigada::~visualizadorListaDuplaLigada()
{
	delete lstListaDuplamenteLigada;
	lstListaDuplamenteLigada = NULL;
};
//------------------------------------------------------------------------------
void visualizadorListaDuplaLigada::desenha(TImage *area,double escalaX,double escalaY)const
{
		area->Canvas->Brush->Color = clMaroon;
		area->Canvas->Rectangle((getX())*escalaX,(getY())*escalaY,(getX()+44)*escalaX,(getY()+44)*escalaY);
		if (escalaX == 1)
		{
				area->Canvas->Rectangle((getX()+2)*escalaX,(getY()+6)*escalaY,(getX()+25)*escalaX,(getY()+37)*escalaY);
				area->Canvas->Brush->Color = clMaroon;
				area->Canvas->TextOutA((getX()+27)*escalaX,(getY()+6)*escalaY,"x2");

				//linhas da lista
				area->Canvas->MoveTo(getX()+5,getY()+10);
				area->Canvas->LineTo(getX()+20,getY()+10);
				area->Canvas->MoveTo(getX()+5,getY()+13);
				area->Canvas->LineTo(getX()+20,getY()+13);
				area->Canvas->MoveTo(getX()+5,getY()+16);
				area->Canvas->LineTo(getX()+20,getY()+16);
				area->Canvas->MoveTo(getX()+5,getY()+19);
				area->Canvas->LineTo(getX()+20,getY()+19);
				area->Canvas->MoveTo(getX()+5,getY()+22);
				area->Canvas->LineTo(getX()+20,getY()+22);
				area->Canvas->MoveTo(getX()+5,getY()+25);
				area->Canvas->LineTo(getX()+20,getY()+25);

				//texto
				area->Canvas->Brush->Color = clWhite;
				area->Canvas->TextOutA((getX()+6)*escalaX,(getY()+29)*escalaY,"LDL" +IntToStr(getIdentidade()));
		}
};
//------------------------------------------------------------------------------
void visualizadorListaDuplaLigada::interage()
{
	TfrmListaDuplamenteLigada * frmListaDuplaLigada = new TfrmListaDuplamenteLigada(Application, lstListaDuplamenteLigada);
	frmListaDuplaLigada->ShowModal();
	delete(frmListaDuplaLigada);
	frmListaDuplaLigada = NULL;
};
//------------------------------------------------------------------------------

